package com.irdstudio.efp.esb.service.bo.req;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONPOJOBuilder;
import com.alibaba.fastjson.annotation.JSONType;

import java.io.Serializable;
import java.util.List;

@JSONType(builder = BaseNewZXReqBean.Builder.class)
public class BaseNewZXReqBean<T extends ZXQueryReports> implements Serializable {
	private static final long serialVersionUID = -1933895419281426723L;


	private String TxnCd;
	private String RqstSysCd;
	private String IntfAcsAutUsrAcctNo;
	private String IntfAcsAutUsrPswd;
	private String LPBrchID;
	private String QryAppTp;
	private String RprtUsr;
	private String RprtUsrBlngDept;
	private String CustNm;
	private String IdentTp;
	private String IdentNo;
	private String QryRsn;
	private String QryTp;
	private String QryVer;
	private String AcqrngCustSrc;
	private String PdNm;
	private String LnkContrNo;
	private String AuthMd;
	private String BioIdentTechTp;
	private String CrdtRprtQryMd;
	private String CrdtRprtRetRsltSeg;
	private String AuthIndr;
	private String LisVldty;
	private String LisAddr;
	private String AuthTm;
	private String AuthStrtDt;
	private String AuthStopDt;
	private String LisSrcURL;
	private String AuthArchvsSrcURL;
	private String LisFileNm;
	private String AuthArchvsFileNm;
	private String QryAppAprvlUsr;
	private String QryAppAprvlUsrBlngBrch;
	private String AprvlOpnn;

	private BaseNewZXReqBean() {}

	private BaseNewZXReqBean(Builder<T> builder) {
		this.TxnCd = builder.TxnCd;
		this.RqstSysCd = builder.RqstSysCd;
		this.IntfAcsAutUsrAcctNo = builder.IntfAcsAutUsrAcctNo;
		this.IntfAcsAutUsrPswd = builder.IntfAcsAutUsrPswd;
		this.LPBrchID = builder.LPBrchID;

		this.QryAppTp = builder.QryAppTp;
		this.RprtUsr = builder.RprtUsr;
		this.RprtUsrBlngDept = builder.RprtUsrBlngDept;
		this.CustNm = builder.CustNm;
		this.IdentTp = builder.IdentTp;
		this.IdentNo = builder.IdentNo;
		this.QryRsn = builder.QryRsn;
		this.QryTp = builder.QryTp;
		this.QryVer = builder.QryVer;
		this.AcqrngCustSrc = builder.AcqrngCustSrc;
		this.PdNm = builder.PdNm;
		this.AuthMd = builder.AuthMd;
		this.BioIdentTechTp = builder.BioIdentTechTp;
		this.CrdtRprtQryMd = builder.CrdtRprtQryMd;
		this.CrdtRprtRetRsltSeg = builder.CrdtRprtRetRsltSeg;
		this.AuthIndr = builder.AuthIndr;
		this.LisVldty = builder.LisVldty;
		this.LisAddr = builder.LisAddr;
		this.AuthTm = builder.AuthTm;
		this.AuthStrtDt = builder.AuthStrtDt;
		this.AuthStopDt = builder.AuthStopDt;
		this.LisSrcURL = builder.LisSrcURL;
		this.AuthArchvsSrcURL = builder.AuthArchvsSrcURL;
		this.LisFileNm = builder.LisFileNm;
		this.AuthArchvsFileNm = builder.AuthArchvsFileNm;
		this.QryAppAprvlUsr = builder.QryAppAprvlUsr;
		this.QryAppAprvlUsrBlngBrch = builder.QryAppAprvlUsrBlngBrch;
		this.AprvlOpnn = builder.AprvlOpnn;
	}

	@JSONField(name = "TxnCd")
	public String getTxnCd() {
		return TxnCd;
	}

	@JSONField(name = "RqstSysCd")
	public String getRqstSysCd() {
		return RqstSysCd;
	}

	@JSONField(name = "IntfAcsAutUsrAcctNo")
	public String getIntfAcsAutUsrAcctNo() {
		return IntfAcsAutUsrAcctNo;
	}

	@JSONField(name = "IntfAcsAutUsrPswd")
	public String getIntfAcsAutUsrPswd() {
		return IntfAcsAutUsrPswd;
	}

	@JSONField(name = "LPBrchID")
	public String getLPBrchID() {
		return LPBrchID;
	}

	@JSONField(name = "QryAppTp")
	public String getQryAppTp() {
		return QryAppTp;
	}

	@JSONField(name = "RprtUsr")
	public String getRprtUsr() {
		return RprtUsr;
	}

	@JSONField(name = "RprtUsrBlngDept")
	public String getRprtUsrBlngDept() {
		return RprtUsrBlngDept;
	}

	@JSONField(name = "CustNm")
	public String getCustNm() {
		return CustNm;
	}

	@JSONField(name = "IdentTp")
	public String getIdentTp() {
		return IdentTp;
	}

	@JSONField(name = "IdentNo")
	public String getIdentNo() {
		return IdentNo;
	}

	@JSONField(name = "QryRsn")
	public String getQryRsn() {
		return QryRsn;
	}

	@JSONField(name = "QryTp")
	public String getQryTp() {
		return QryTp;
	}

	@JSONField(name = "QryVer")
	public String getQryVer() {
		return QryVer;
	}

	@JSONField(name = "AcqrngCustSrc")
	public String getAcqrngCustSrc() {
		return AcqrngCustSrc;
	}

	@JSONField(name = "PdNm")
	public String getPdNm() {
		return PdNm;
	}

	@JSONField(name = "LnkContrNo")
	public String getLnkContrNo() {
		return LnkContrNo;
	}

	@JSONField(name = "AuthMd")
	public String getAuthMd() {
		return AuthMd;
	}

	@JSONField(name = "BioIdentTechTp")
	public String getBioIdentTechTp() {
		return BioIdentTechTp;
	}

	@JSONField(name = "CrdtRprtQryMd")
	public String getCrdtRprtQryMd() {
		return CrdtRprtQryMd;
	}

	@JSONField(name = "CrdtRprtRetRsltSeg")
	public String getCrdtRprtRetRsltSeg() {
		return CrdtRprtRetRsltSeg;
	}

	@JSONField(name = "AuthIndr")
	public String getAuthIndr() {
		return AuthIndr;
	}

	@JSONField(name = "LisVldty")
	public String getLisVldty() {
		return LisVldty;
	}

	@JSONField(name = "LisAddr")
	public String getLisAddr() {
		return LisAddr;
	}

	@JSONField(name = "AuthTm")
	public String getAuthTm() {
		return AuthTm;
	}

	@JSONField(name = "AuthStrtDt")
	public String getAuthStrtDt() {
		return AuthStrtDt;
	}

	@JSONField(name = "AuthStopDt")
	public String getAuthStopDt() {
		return AuthStopDt;
	}

	@JSONField(name = "LisSrcURL")
	public String getLisSrcURL() {
		return LisSrcURL;
	}

	@JSONField(name = "AuthArchvsSrcURL")
	public String getAuthArchvsSrcURL() {
		return AuthArchvsSrcURL;
	}

	@JSONField(name = "LisFileNm")
	public String getLisFileNm() {
		return LisFileNm;
	}

	@JSONField(name = "AuthArchvsFileNm")
	public String getAuthArchvsFileNm() {
		return AuthArchvsFileNm;
	}

	@JSONField(name = "QryAppAprvlUsr")
	public String getQryAppAprvlUsr() {
		return QryAppAprvlUsr;
	}

	@JSONField(name = "QryAppAprvlUsrBlngBrch")
	public String getQryAppAprvlUsrBlngBrch() {
		return QryAppAprvlUsrBlngBrch;
	}

	@JSONField(name = "AprvlOpnn")
	public String getAprvlOpnn() {
		return AprvlOpnn;
	}

	@JSONPOJOBuilder(buildMethod = "build", withPrefix = "with")
	public static class Builder<T extends ZXQueryReports> {
		private String TxnCd;
		private String RqstSysCd;
		private String IntfAcsAutUsrAcctNo;
		private String IntfAcsAutUsrPswd;
		private String LPBrchID;

		private String QryAppTp;
		private String RprtUsr;
		private String RprtUsrBlngDept;
		private String CustNm;
		private String IdentTp;
		private String IdentNo;
		private String QryRsn;
		private String QryTp;
		private String QryVer;
		private String AcqrngCustSrc;
		private String PdNm;
		private String LnkContrNo;
		private String AuthMd;
		private String BioIdentTechTp;
		private String CrdtRprtQryMd;
		private String CrdtRprtRetRsltSeg;
		private String AuthIndr;
		private String LisVldty;
		private String LisAddr;
		private String AuthTm;
		private String AuthStrtDt;
		private String AuthStopDt;
		private String LisSrcURL;
		private String AuthArchvsSrcURL;
		private String LisFileNm;
		private String AuthArchvsFileNm;
		private String QryAppAprvlUsr;
		private String QryAppAprvlUsrBlngBrch;
		private String AprvlOpnn;


		public Builder<T> withTxnCd(String val)
		{ TxnCd = val; return this; }
		public Builder<T> withRqstSysCd(String val)
		{ RqstSysCd = val; return this; }
		public Builder<T> withIntfAcsAutUsrAcctNo(String val)
		{ IntfAcsAutUsrAcctNo = val; return this; }
		public Builder<T> withIntfAcsAutUsrPswd(String val)
		{ IntfAcsAutUsrPswd = val; return this; }
		public Builder<T> withLPBrchID(String val)
		{ LPBrchID = val; return this; }

		public Builder<T> withQryAppTp(String val) {
			QryAppTp = val;
			return this;
		}

		public Builder<T> withRprtUsr(String val) {
			RprtUsr = val;
			return this;
		}

		public Builder<T> withRprtUsrBlngDept(String val) {
			RprtUsrBlngDept = val;
			return this;
		}

		public Builder<T> withCustNm(String val) {
			CustNm = val;
			return this;
		}

		public Builder<T> withIdentTp(String val) {
			IdentTp = val;
			return this;
		}

		public Builder<T> withIdentNo(String val) {
			IdentNo = val;
			return this;
		}

		public Builder<T> withQryRsn(String val) {
			QryRsn = val;
			return this;
		}

		public Builder<T> withQryTp(String val) {
			QryTp = val;
			return this;
		}

		public Builder<T> withQryVer(String val) {
			QryVer = val;
			return this;
		}

		public Builder<T> withAcqrngCustSrc(String val) {
			AcqrngCustSrc = val;
			return this;
		}

		public Builder<T> withPdNm(String val) {
			PdNm = val;
			return this;
		}

		public Builder<T> withLnkContrNo(String val) {
			LnkContrNo = val;
			return this;
		}

		public Builder<T> withAuthMd(String val) {
			AuthMd = val;
			return this;
		}

		public Builder<T> withBioIdentTechTp(String val) {
			BioIdentTechTp = val;
			return this;
		}

		public Builder<T> withCrdtRprtQryMd(String val) {
			CrdtRprtQryMd = val;
			return this;
		}

		public Builder<T> withCrdtRprtRetRsltSeg(String val) {
			CrdtRprtRetRsltSeg = val;
			return this;
		}

		public Builder<T> withAuthIndr(String val) {
			AuthIndr = val;
			return this;
		}

		public Builder<T> withLisVldty(String val) {
			LisVldty = val;
			return this;
		}

		public Builder<T> withLisAddr(String val) {
			LisAddr = val;
			return this;
		}

		public Builder<T> withAuthTm(String val) {
			AuthTm = val;
			return this;
		}

		public Builder<T> withAuthStrtDt(String val) {
			AuthStrtDt = val;
			return this;
		}

		public Builder<T> withAuthStopDt(String val) {
			AuthStopDt = val;
			return this;
		}

		public Builder<T> withLisSrcURL(String val) {
			LisSrcURL = val;
			return this;
		}

		public Builder<T> withAuthArchvsSrcURL(String val) {
			AuthArchvsSrcURL = val;
			return this;
		}

		public Builder<T> withLisFileNm(String val) {
			LisFileNm = val;
			return this;
		}

		public Builder<T> withAuthArchvsFileNm(String val) {
			AuthArchvsFileNm = val;
			return this;
		}

		public Builder<T> withQryAppAprvlUsr(String val) {
			QryAppAprvlUsr = val;
			return this;
		}

		public Builder<T> withQryAppAprvlUsrBlngBrch(String val) {
			QryAppAprvlUsrBlngBrch = val;
			return this;
		}

		public Builder<T> withAprvlOpnn(String val) {
			AprvlOpnn = val;
			return this;
		}

		public BaseNewZXReqBean<T> build() {
			return new BaseNewZXReqBean<T>(this);
		}
	}

	@Override
	public String toString() {
		return "BaseNewZXReqBean [TxnCd=" + TxnCd + ", IdentNo=" + IdentNo + "]";
	}
}
